package com.server.mould.business;

import com.project.annotation.model.base.IdResult;
import com.project.annotation.model.base.PageResult;
import com.project.annotation.model.base.ResultBase;
import com.project.annotation.model.base.VoidResult;
import com.server.mould.business.base.BaseCtrlInterface;
import com.server.mould.domain.reqeust.*;
import com.server.mould.domain.reqeust.base.PageBaseRequest;
import com.server.mould.domain.result.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;

@RequestMapping("/userdetails_svr")
public interface UserDetailsCtrlInterface extends BaseCtrlInterface<UserDetailsRequest, UserDetailsResult> {

    @PostMapping("/Search")
    ResultBase<List<UserDetailsResult>> Search(@RequestBody UserDetailsRequest item) throws Exception;

    @PostMapping("/SearchPage")
    ResultBase<PageResult<UserDetailsResult>> SearchPage(@RequestBody PageBaseRequest<UserDetailsRequest> item) throws Exception;

    @PostMapping("/Edit")
    ResultBase<Integer> Edit(@RequestBody UserDetailsRequest item) throws Exception;

    @PostMapping("/Add")
    ResultBase<Integer> Add(@RequestBody UserDetailsRequest item) throws Exception;

    @PostMapping("/Create")
    ResultBase<IdResult> Create(@RequestBody UserDetailsRequest item) throws Exception;

    @PostMapping("/Delete")
    ResultBase<Integer> Delete(@RequestBody UserDetailsRequest item) throws Exception;

    @PostMapping("/Change")
    ResultBase<VoidResult> Change(@RequestBody UserDetailsRequest item) throws Exception;

    @PostMapping("/SearchInner")
    ResultBase<List<UserDetailsResult>> SearchInner(@RequestBody UserDetailsRequest item) throws Exception;

    @PostMapping("/SearchPageInner")
    ResultBase<PageResult<UserDetailsResult>> SearchPageInner(@RequestBody PageBaseRequest<UserDetailsRequest> item) throws Exception;

    @PostMapping("/EditInner")
    ResultBase<Integer> EditInner(@RequestBody UserDetailsRequest item) throws Exception;

    @PostMapping("/DeleteInner")
    ResultBase<VoidResult> DeleteInner(@RequestBody UserDetailsRequest item) throws Exception;

}